home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / muds / pennmush.000 / pennmush-1.50-p8-linux.tar / pennmush / flags.h < prev    next >
C/C++ Source or Header  |  1993-04-15  |  6KB  |  167 lines

  1. /* flags.h */
  2.  
  3. /* flag and powers stuff */
  4.  
  5. #ifndef __FLAGS_H
  6. #define __FLAGS_H
  7.  
  8. #include "config.h"
  9.  
  10. /*--------------------------------------------------------------------------
  11.  * Generic flags
  12.  */
  13.  
  14. #define TYPE_ROOM     0x0
  15. #define TYPE_THING     0x1
  16. #define TYPE_EXIT     0x2
  17. #define TYPE_PLAYER     0x3
  18. #define NOTYPE        0x7    /* no particular type */
  19. #define TYPE_MASK     0x7    /* room for expansion */
  20.  
  21. /* -- empty slot 0x8 -- */
  22. #define WIZARD        0x10    /* gets automatic control */
  23. #define LINK_OK        0x20    /* anybody can link to this room */
  24. #define DARK        0x40    /* contents of room are not printed */
  25.                 /* exit doesn't appear as 'obvious' */
  26. #define VERBOSE        0x80    /* print out command before executing it */
  27. #define STICKY        0x100   /* goes home when dropped */
  28. #define TRANSPARENT     0x200   /* can look through exit to see next room,
  29.                  * or room "long exit display.
  30.                  */
  31. #define    HAVEN        0x400    /* this room disallows kills in it */
  32.                 /* on a player, disallow paging, */
  33. #define QUIET        0x800    /* On an object, will not emit 'set'
  34.                  * messages.. on a player.. will not see ANY
  35.                                  * set messages
  36.                    */
  37. #define HALT        0x1000  /* object cannot perform actions */
  38. #define UNFIND          0x2000  /* object cannot be found (or found in */
  39. #define GOING         0x4000    /* object is available for recycling */
  40.  
  41. #define ACCESSED     0x8000    /* object has been accessed recently */
  42. #define MARKED       0x10000    /* flag used to trace db checking of room
  43.                  * linkages. */
  44. /* -- empty slot 0x20000 -- */
  45. #define CHOWN_OK     0x40000    /* object can be 'stolen' and made yours */
  46. #define ENTER_OK    0x80000 /* object basically acts like a room with
  47.                  * only one exit (leave), on players 
  48.                  * means that items can be given freely, AND
  49.                  * taken from!
  50.                  */
  51. #define VISUAL        0x100000    /* People other than owners can see 
  52.                       * property list of object.
  53.                      */
  54. /* -- empty slot 0x20000 -- */
  55. #ifdef ROYALTY_FLAG
  56. #define ROYALTY        0x400000    /* can ex, and @tel like a wizard */
  57. #endif                        /* ROYALTY_FLAG */
  58.  
  59. #define OPAQUE      0x800000    /* Objects inside object will not be
  60.                      * seen on a look.
  61.                      */
  62. #ifdef INHERIT_FLAG
  63. #define INHERIT     0x1000000       /* Inherit objects can force their
  64.                                         * owners. Inherit players have all
  65.                      * objects inherit.
  66.                      */
  67. #endif                /* INHERIT_FLAG */
  68.  
  69. #define DEBUGGING    0x2000000    /* returns parser evals */
  70. #define SAFE        0x4000000    /* cannot be destroyed */
  71. #define STARTUP     0x8000000    /* These objects have a @startup
  72.                      * triggered when the MUSH restarts.                        */
  73. #define AUDIBLE     0x10000000      /* rooms are flagged as having emitter 
  74.                      * exits. exits act like emitters, 
  75.                      * sound propagates to the exit dest. 
  76.                      */
  77. #define NO_COMMAND      0x20000000    /* don't check for $commands */
  78.  
  79. /*--------------------------------------------------------------------------
  80.  * Player flags
  81.  */
  82.  
  83. #define PLAYER_TERSE    0x8         /* suppress autolook messages */
  84. #define PLAYER_MYOPIC   0x10        /* look at everything as if player
  85.                      * doesn't control it.
  86.                      */
  87. #define PLAYER_NOSPOOF  0x20        /* sees origin of emits */
  88. #define PLAYER_SUSPECT  0x40        /* notifies of a player's name changes,
  89.                      * (dis)connects, and possible logs
  90.                      * logs commands.
  91.                      */
  92. #define PLAYER_GAGGED   0x80        /* can only move */
  93. #define PLAYER_MONITOR  0x100        /* sees (dis)connects broadcasted */
  94. #define PLAYER_CONNECT  0x200        /* connected to game */
  95. #define PLAYER_ANSI     0x400        /* enable sending of ansi control
  96.                      * sequences (for examine).
  97.                      */
  98. #define PLAYER_ZONE     0x800           /* Zone Master (zone control owner) */
  99.  
  100. /*--------------------------------------------------------------------------
  101.  * Thing flags
  102.  */
  103.  
  104. #define THING_DEST_OK    0x8        /* can be destroyed by anyone */
  105. #define THING_PUPPET    0x10        /* echoes to its owner */
  106. #define THING_LISTEN    0x20        /* checks for ^ patterns */
  107.  
  108. /*--------------------------------------------------------------------------
  109.  * Room flags
  110.  */
  111.  
  112. #define ROOM_FLOATING    0x8        /* room is not linked to rest of
  113.                      * MUSH. Don't blather about it.
  114.                      */
  115. #define ROOM_ABODE    0x10        /* players may link themselves here */
  116. #define ROOM_JUMP_OK    0x20        /* anyone may @teleport to here */
  117. #define ROOM_NO_TEL    0x40        /* mortals cannot @tel from here */
  118. #define ROOM_TEMPLE    0x80        /* objects dropped here are sacrificed
  119.                      * (destroyed) and player gets money.
  120.                      */
  121.  
  122. /*--------------------------------------------------------------------------
  123.  * Exit flags
  124.  */
  125.  
  126. /* -- none yet -- */
  127.  
  128.  
  129. /*--------------------------------------------------------------------------
  130.  * Flag permissions
  131.  */
  132.  
  133. #define F_ANY        0x10        /* can be set by anyone */
  134. #define F_INHERIT    0x20        /* must pass inherit check */
  135. #define F_OWNED        0x40        /* can be set on owned objects */
  136. #define F_ROYAL        0x80        /* can only be set by royalty */
  137. #define F_WIZARD    0x100        /* can only be set by wizards */
  138. #define F_GOD           0x200           /* can only be set by God */
  139. #define F_INTERNAL    0x400        /* only the game can set this */
  140.  
  141.  
  142. /*--------------------------------------------------------------------------
  143.  * Powers table
  144.  */
  145.  
  146. #define CAN_BUILD    0x10        /* can use builder commands */
  147. #define TEL_ANYWHERE    0x20        /* teleport self anywhere */
  148. #define TEL_OTHER       0x40        /* teleport someone else */
  149. #define SEE_ALL            0x80        /* can examine all and use priv WHO */
  150. #define IMMORTAL    0x100        /* cannot be killed, uses no money */
  151. #define CHAT_PRIVS    0x200        /* can use restricted channels */
  152. #define CAN_HIDE        0x400        /* can go DARK on the WHO list */
  153. #define LOGIN_ANYTIME   0x800       /* not affected by restricted logins */
  154. #define UNLIMITED_IDLE  0x1000      /* no inactivity timeout */
  155. #define LONG_FINGERS    0x2000        /* can grab stuff remotely */
  156. #define CAN_BOOT        0x4000      /* can boot off players */
  157. #define CHANGE_QUOTAS   0x8000        /* can change other players' quotas */
  158. #define SET_POLL        0x10000        /* can change the poll */
  159. #define HUGE_QUEUE    0x20000        /* 10x normal queue limit */
  160. #define PS_ALL          0x40000         /* look at anyone's queue */
  161. #define HALT_ANYTHING   0x80000         /* do @halt on others, and @allhalt */
  162. #define SEARCH_ALL    0x100000    /* @stats, @search, @entrances all */
  163. #define GLOBAL_FUNCS    0x200000        /* add global functions */
  164. #define CREATE_PLAYER   0x400000        /* @pcreate */
  165.  
  166. #endif                /* __FLAGS_H */
  167.